from typing import List, Optional, Dict, TypeVar, Any

from pydantic import BaseModel, Field

#####
# Extracting Class
#####
class CypherQL(BaseModel):
    """生成的CypherSQL语句"""
    cypher: str = Field(..., description="Cypher query statement")

class Entity(BaseModel):
    entities: List[str] = Field(default=[], description="Entities List")
    reported_date_start: Optional[str] = Field(default=None, description="Reported Start Date")
    reported_date_end: Optional[str] = Field(default=None, description="Reported End Date")
    occurred_date_start: Optional[str] = Field(default=None, description="Occurred Start Date")
    occurred_date_end: Optional[str] = Field(default=None, description="Occurred End Date")

class TaskCategory(BaseModel):
    """任务类型判断"""
    category: int = Field(..., description="任务类别，必须在1-4之间的数字")
    #questions: Optional[List[str]] = Field(..., description="问题列表")


    